package com.bst.base.service.impl;

import com.bst.base.domain.BaseInter;
import com.bst.base.domain.BaseInterFld;
import com.bst.base.mapper.BaseInterFldMapper;
import com.bst.base.mapper.BaseInterMapper;
import com.bst.base.service.IBaseInterFldService;
import com.bst.base.vo.BaseInterFldVO;
import com.bst.common.core.text.Convert;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.ArrayList;
import java.util.List;

/**
 * 接口字段Service业务层处理
 * 
 * @author laoliu
 * @date 2024-11-10
 */
@Service
public class BaseInterFldServiceImpl implements IBaseInterFldService 
{
    @Autowired
    private BaseInterFldMapper baseInterFldMapper;
    @Autowired
    private BaseInterMapper baseInterMapper;

    /**
     * 查询接口字段
     * 
     * @param idInterFld 接口字段主键
     * @return 接口字段
     */
    @Override
    public BaseInterFld selectBaseInterFldByIdInterFld(Long idInterFld)
    {
        return baseInterFldMapper.selectBaseInterFldByIdInterFld(idInterFld);
    }

    @Override
    public List<BaseInterFld> selectBaseInterFldByCdInter(String cdInter)
    {
        BaseInter inter = new BaseInter();
        inter.setCd(cdInter);
        List<BaseInter> inters = baseInterMapper.selectBaseInterList(inter);
        if(inters.size()>0) {
            BaseInterFld fld = new BaseInterFld();
            fld.setIdInter(inters.get(0).getIdInter());
            return baseInterFldMapper.selectBaseInterFldList(fld);
        }
        return new ArrayList<>();
    }

    /**
     * 查询接口字段列表
     * 
     * @param baseInterFld 接口字段
     * @return 接口字段
     */
    @Override
    public List<BaseInterFld> selectBaseInterFldList(BaseInterFld baseInterFld)
    {
        return baseInterFldMapper.selectBaseInterFldList(baseInterFld);
    }

    /**
     * 新增接口字段
     * 
     * @param baseInterFld 接口字段
     * @return 结果
     */
    @Override
    public int insertBaseInterFld(BaseInterFld baseInterFld)
    {
        return baseInterFldMapper.insertBaseInterFld(baseInterFld);
    }

    @Override
    @Transactional
    public int insertBatchBaseInterFld(BaseInterFldVO vo) {
        Long idInter = vo.getIdInter();
        for (BaseInterFld fld : vo.getFlds()) {
            fld.setIdInter(idInter);
        }
        this.deleteBaseInterFldByIdInter(idInter);
        return baseInterFldMapper.insertBatchBaseInterFld(vo.getFlds());
    }

    /**
     * 修改接口字段
     * 
     * @param baseInterFld 接口字段
     * @return 结果
     */
    @Override
    public int updateBaseInterFld(BaseInterFld baseInterFld)
    {
        return baseInterFldMapper.updateBaseInterFld(baseInterFld);
    }

    /**
     * 批量删除接口字段
     * 
     * @param idInterFlds 需要删除的接口字段主键
     * @return 结果
     */
    @Override
    public int deleteBaseInterFldByIdInterFlds(String idInterFlds)
    {
        return baseInterFldMapper.deleteBaseInterFldByIdInterFlds(Convert.toStrArray(idInterFlds));
    }

    /**
     * 删除接口字段信息
     * 
     * @param idInterFld 接口字段主键
     * @return 结果
     */
    @Override
    public int deleteBaseInterFldByIdInterFld(Long idInterFld)
    {
        return baseInterFldMapper.deleteBaseInterFldByIdInterFld(idInterFld);
    }

    @Override
    public int deleteBaseInterFldByIdInter(Long idInter) {
        return baseInterFldMapper.deleteBaseInterFldByIdInter(idInter);
    }
}
